5 edge
* e
; //e = Arreglo de todas las aristas
6 long long d
[300]; //Distancias
7 int n
; //Cantidad de nodos
8 int m
; //Cantidad de aristas
11 Retorna falso si hay un ciclo de costo negativo.
13 Si retorna verdadero, entonces d[i] contiene la distancia más corta entre el s y el nodo i.
20 for (int i
=0; i
<n
; ++i
) d
[i
] = INT_MAX
;
23 for (int i
=0; i
<n
-1; ++i
){
25 for (int j
=0; j
<m
; ++j
){
26 int u
= e
[j
].u
, v
= e
[j
].v
;
33 if (!cambio
) break; //Early-exit
36 for (int j
=0; j
<m
; ++j
){
37 int u
= e
[j
].u
, v
= e
[j
].v
;
39 if (d
[u
] + w
< d
[v
]) return false;